#ifndef MENU_HIGH_SCORES
#define MENU_HIGH_SCORES

class MenuHighScores;

#include <stdlib.h>

#include "GameResources.h"
#include "Level.h"
#include "MenuState.h"
#include "PlayState.h"
#include "ReplayState.h"
#include "ReplayManager.h"

/*
 * Class to load a level if one has not yet been loaded, otherwise play level
 */
class MenuHighScores : public MenuState
{
    public:
		MenuHighScores();
        void enter(void);
        void exit(void);
        void resume(void);

        void getStatePointers();

		bool frameStarted(const Ogre::FrameEvent &evt);

        bool clickBackButton(const CEGUI::EventArgs &e);
        bool hoverBackButton(const CEGUI::EventArgs &e);
        bool offBackButton(const CEGUI::EventArgs &e);
        bool clickLeftArrow(const CEGUI::EventArgs &e);
        bool clickRightArrow(const CEGUI::EventArgs &e);
        bool clickLevelImage(const CEGUI::EventArgs &e);
        bool hoverNoise(const CEGUI::EventArgs &e);
        void setLevelDetails();
        void setGameDetails();
		bool clickReplay1(const CEGUI::EventArgs &e);
		bool clickReplay2(const CEGUI::EventArgs &e);
		bool clickReplay3(const CEGUI::EventArgs &e);
		bool clickReplay4(const CEGUI::EventArgs &e);
		bool clickReplay5(const CEGUI::EventArgs &e);
		void loadReplay(std::string filename);
    
    private:
        LevelVector::iterator levelIterator;
        bool displayingGameScores;
        ReplayManager *replayManager;
};

#endif

